package com.kgcx.price.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import javax.persistence.*;
import java.sql.Timestamp;

/**
 * PriceCaculationPrice 实际收费实体类
 *
 * @author:zml
 * @date:2017/11/07
 */
@Data
@ApiModel(value = "PriceActualPrice", description = "实际收费实体类")
@Table(name="t_price_actual_price")
public class PriceActualPrice
{

    @ApiModelProperty(value="主键ID",name="kid",example="1")
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long kid;

    @ApiModelProperty(value="订单号【必填】",name="orderId", required=true)
    private String orderId;

    @ApiModelProperty(value="乘客id【必填】",name="customerId")
    private Long customerId;

    @ApiModelProperty(value="司机id【必填】",name="driverId")
    private Long driverId;

    @ApiModelProperty(value="里程",name="mileage")
    private Long mileage;

    @ApiModelProperty(value="里程费",name="mileageMoney")
    private Long mileageMoney;

    @ApiModelProperty(value="时长(分钟)",name="time")
    private Integer time;

    @ApiModelProperty(value="时长费",name="timeFee")
    private Long timeFee;

    @ApiModelProperty(value="起步费",name="startFee")
    private Long startFee;

    @ApiModelProperty(value="远途标识 1:是 0:否",name="travelFlag")
    private Integer travelFlag;

    @ApiModelProperty(value="出城标识 1:出城 0:未出城 ",name="outCityFlag")
    private Integer outCityFlag;

    @ApiModelProperty(value="远途费",name="travelFee")
    private Long travelFee;

    @ApiModelProperty(value="出城费",name="cityFee")
    private Long cityFee;

    @ApiModelProperty(value="夜间服务费",name="eveFee")
    private Long eveFee;

    @ApiModelProperty(value="超里程费",name="mileageCharge")
    private Long mileageCharge;

    @ApiModelProperty(value="超时长费",name="timeCharge")
    private Long timeCharge;

    @ApiModelProperty(value="套餐价",name="packageFee")
    private Long packageFee;

    @ApiModelProperty(value="路桥费",name="serveiceCharge")
    private Double serveiceCharge;

    @ApiModelProperty(value="停车费",name="parkingFee")
    private Double parkingFee;

    @ApiModelProperty(value="其他费用",name="otherFee")
    private Double otherFee;

    @ApiModelProperty(value="总计预估价(已抹零)",name="totalFee")
    private Long totalFee;

    @ApiModelProperty(value="总预估价(未抹零)",name="totals")
    private Long totals;

    @ApiModelProperty(value="减优惠券之前的总计预估价",name="totalMoney")
    private Long totalMoney;

    @ApiModelProperty(value="优惠券ID",name="couponId")
    private Long couponId;

    @ApiModelProperty(value="优惠券价",name="couponFee")
    private Long couponFee;

    @ApiModelProperty(value="是否套餐0否1是",name="type")
    private Integer type;

    @ApiModelProperty(value="计价规则类型 1套餐 2普通 3一口价",name="calType")
    private Integer calType;

    @ApiModelProperty(value="远途公里",name="kmLong")
    private Long kmLong;

    @ApiModelProperty(value="套餐价时的基础里程",name="mile")
    private Long mile;

    @ApiModelProperty(value="套餐价时的时长",name="pactime")
    private Integer pactime;

    @ApiModelProperty(value="套餐基础价",name="packages")
    private Double packages;

    @ApiModelProperty(value="超时长数",name="overtime")
    private Long overtime;

    @ApiModelProperty(value="超里程数",name="overmile")
    private Long overmile;

    @ApiModelProperty(value="抹零",name="zero")
    private Long zero;

    @ApiModelProperty(value="关联报价规则",name="price_id")
    private Long priceId;

    @ApiModelProperty(value="创建时间",name="createTime")
    private Timestamp createTime;

    @ApiModelProperty(value="创建人",name="createBy")
    private Long createBy;

    @ApiModelProperty(value="更新时间",name="updateTime")
    private Timestamp updateTime;

    @ApiModelProperty(value="更新人",name="updateBy")
    private Long updateBy;

    @ApiModelProperty(value="状态 101:启用 102:禁用 103:删除",name="status")
    private Integer status;

    @ApiModelProperty(value="备注",name="remark")
    private String remark;

    @ApiModelProperty(value="用车类型【必填】",name="carType")
    @Transient
    private Integer carType;

    @ApiModelProperty(value="城市Id【必填】",name="cityId")
    @Transient
    private Integer cityId;

    @ApiModelProperty(value="出发地经纬度【必填】",name="origin")
    private String origin;

    @ApiModelProperty(value="目的地经纬度【必填】",name="destination")
    private String destination;

    @ApiModelProperty(value="订单开始时间【必填】",name="orderStartTime")
    private Timestamp orderStartTime;

    @ApiModelProperty(value="订单结束时间【必填】",name="orderEndTime")
    private Timestamp orderEndTime;

    @ApiModelProperty(value="历史真实价格",name="hisFee")
    private Long hisFee;

    @ApiModelProperty(value="收费调整类型：1、根据预估价调整 2、协商后调整",name="adjustType")
    private Integer adjustType;

}